// 对axios进行全局封装
import axios from 'axios'

// 导入进度条包的进度条样式
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

export function request(config, method='get') {
  const instance = axios.create({
    baseURL: 'http://timemeetyou.com:8889/api/private/v1/',
    // baseURL: 'http://47.108.206.212:9999/api/private/v1/',
    timeout: 5000,
    method: method
  })

  // 2.axios的拦截器
  // 2.1请求拦截
  instance.interceptors.request.use(
    config => {
      // 展示进度条
      NProgress.start()
      // console.log(config);
      // 1.比如config中的一些信息不符合服务器的要求
      // 2.比如每次发送网络请求时，都希望在界面中显示一个请求的图标
      // 3.某些网络请求(比如登陆(token))，必须携带一些特殊的信息，
      config.headers.Authorization = window.sessionStorage.getItem('token') || '*'
      return config
    },
    // err => {
    //   console.log(err);
    // }
  )
// 2.2响应拦截            
instance.interceptors.response.use(
  res => {
    // 隐藏进度条
    NProgress.done()
    // console.log(res);
    // data才是真正的返回结果
    return res.data
  },
  // err => {
  //   console.log(err);
  // }
)

// 3.发生真正的网络请求
return instance(config)
}